perm filename NTS.F4[1,LCS] blob sn#583759 filedate 1981-04-30 generic text, type T, neo UTF8
	SUBROUTINE NTS   
C       EXTERNAL .COMM.,ALF,POSI,AMOD,CENTX,RDRAW,PLTR,STF,EXTRA 
C       EXTERNAL LINX,DRWNT,DAT,NOIR,TAIL,LINES,RHORZ  
C       INTERNAL WIDTH   ; NOTE WIDTH IN BASIC UNITS   
	IMPLICIT INTEGER(A-Q,S-Z)  
	COMMON/DL/IXRX,M,AA /FONT/JFONT 
	COMMON/SCM/V(78),ISCR,LCNT,RSTF,LIST(200),REND 
	COMMON/DAT/RACNT(69),RDOT(17),XAC(7),RNOTE(22),RACCI(22),NACCI(3)  
	REAL DIS,CENTR,POS,STFF    
	COMMON /STF/RSTFAC(0/7),RSTJ2   
	COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20) 
	COMMON/PLTR/PLT,RHT,DIS /POSI/STFF(0/7),JJ2,POS
C  ITEMS IN FOLLOWING COMMON BLOCK ARE USED IN 'TAILS' AND 'FERM'
	COMMON/ALF/INP(46),RST7,RST3,RSTX,RMINI,RINV,RA,RX,RJX,RJY,   
	1 RB,RJW,RZ,JX,RG,KL,RJAC,K,L,RQ,RH,RZTM,RXX,JJJ,   
	1 PUNCT,JY,RJ    
	EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R4,RJQ(2)) 
	1,(R6,RJQ(4)),(J7,JQ(5)),(J8,JQ(6)),(J9,JQ(7)),(J10,JQ(8)),   
	1(J11,JQ(9)),(J6,JQ(4)),(R5,RJQ(3)),(R11,RJQ(9)),(STEM,JQ(20))
	1,(R8,RJQ(6)),(R7,RJQ(5)),(RX,JRX),(RJZ,RJQ(20)),(R3,RJQ(1))  
	1,(RX4,JQ(19)),(STEM,JQ(20))    
     
	DATA WIDTH/14.54/
C  NOTES****   
	STEM=J5/10  
	MOVM 7,.COMM.+=27       ; (J6)  11      JY=0   
	CAIN 7,=30      ;IF(JY.EQ.30)JY=0  30 IS USED IN NOTBMS & RHYTH.   
	SETZ 7,
	SKIPN .COMM.+=12	;IF R11.NE.0 PUT A -1 (INTEGER) INTO R6    
	JRST .+3	       ;SORT IT OUT IN NTSB   
	SETOM .COMM.+7 ;*******EVENTUALLY DO AWAY WITH R6-R11 COMPATIBILITY
	JRST N1
	SKIPN .COMM.+7	 ;IF(R6.EQ.0)GO TO 1015 
	JRST N1		;JY=IABS(J6) 
	JSA 16,AMOD	    ;R6=ABS(AMOD(R6,1.0))*10.   
	JUMP .COMM.+7    
	JUMP [1.0]  
	FMPR [10.0] 
	MOVMM .COMM.+7	 ; R6     L IS AC 14 ******  
N1:     MOVM 14,.COMM.+=25     ;R6 WILL HAVE ACCENT CODE # (.7=DOT, ETC.)  
;;	     ;  L   1015     L=IABS(J4)   
	MOVEM 7,ALF+=70	;PUT AWAY JY IN RIGHT PLACE FOR NOTSUB.    
	MOVE .COMM.+4   ;RJAC=R3   
	MOVEM ALF+=61    
	MOVE 13,[2.0]   ;   TO SAVE POS. OF NOTE FOR ACCENT 
	FMPR 13,STF+10	 ; 13 IS RZTM=2.*RSTJ2  
N1010:  SKIPLE J10	     ;IF(J10.GT.0)GO TO N3016    
	JRST N3016  
	CAIGE 14,=80	   ;1010    IF(L.LT.80)GO TO 1013   
	JRST N1013	     ;MINIS= 80↑Y179  OR -100↑Y-120   
;;      MOVE 2,.COMM.+5	;NEXT CHECKS FOR >80 NUMBS. 
;;      CAMGE 2,[-20.0]	;IF(R4.LT.-20)R4=R4+100
;;      FADR 2,[100.0]	 ; CATCHES THINGS LIKE R4=-95
;;      CAMGE 2,[80.0]  ;*******ALL THIS IS NOW IN CENTX(LOOP.FAI)*** 
;;      JRST .+3    
;;      FSBR 2,[100.0]   
;;      MOVEM 2,.COMM.+5	;PUT THE RIGHT THING INTO R4
	CAIGE 14,=180	  ;IF(L.LT.180)GO TO 1012
	JRST N1012	     ;DIAMOND NTS=180↑Y279  
	SETZ 13,	       ;RZTM=0 
	CAIL 14,=280	   ;IF(L.GE.280)GO TO 1014
	JRST N1014	     ;X NTS=280↑Y379   
	MOVEI 12,10	    ; 12  IS   KL=8   
	MOVE 11,[12.0]	 ;  11  IS  RG=12.0
	JRST N1013	     ;  FOR DIAMOND NOTES.  
N1014:  CAIL 14,=380	   ;GO TO 1013     STEM ONLY NTS=380↑Y479
	JRST N1016	     ;1014   IF(L.GE.380)GO TO 1016   
	MOVE 10,[7.0]	  ; 10  IS  RJX=RMINI*7  
	FMPR 10,ALF+=49	; *RMINI (+49)    
	MOVEI 12,=13	   ;  FOR "X" NOTES. 
	MOVE 11,[16.0]	 ;KL=13  
	MOVE 2,.COMM.+=43       ; STEM      RG=16.
	CAIN 2,2	       ;RB=CENTR+RJX
	MOVNS 10	       ;IF(STEM.EQ.2)RB=CENTR-RJX  
	FADR 10,.COMM.+2	; 10 IS RB   
	JRST N1013	     ;GO TO 1013  
;;N1016:	CAIGE 14,=1000  ;1016   IF(L.LT.1000.OR.L.GE.10000)GO TO 1011   
N1016:  CAIGE 14,[=10000]
	JRST N1019	     ;IF(L.GE.10000)GO TO 1013   
	JRST N1013  
;;      CAML 14,[=10000] 
;;      JRST N1013  
;;N3016:	MOVE .COMM.+=43	;IF(STEM.EQ.2)GO TO N2016
;;      CAIN  2
;;      JRST N2016      ;STEM DIRECTION IS REVERSED ON OTHER STAFF!!!!!    
;;      JUMPE N2016+1	  ;IF(STEM.EQ.0)GO TO N2016+1 
;;      AOS  .COMM.+=43	;STEM=STEM+1 
;;      SKIPA  
;;N2016:	SOS .COMM.+=43	 ;STEM=STEM-1   
;;;N3016:       SETO 12,	       ;KL=-1    
N3016:  MOVE 2,.COMM.+3	;POS=STFF(J2+1)  VERT. POS OF STAFF ABOVE  
	MOVE J10	       ;IF(J10.EQ.1)KL=-KL    
	CAIE 2 
	SUBI 2,2	       ; CHANGE TO J2-1  IF STAFF BELOW 
	MOVE 2,POSI+1(2)	; GET POS.   
	MOVEM 2,POSI+=9	; POS   
;;;     MOVNS 12    
;PUTS NOTE ON STF ABOVE(P10=2) OR BELOW(=1)-NEXT FIND POS ON OTHER STF
;;;     MOVE 2,.COMM.+3	;RB=(STFF(J2-KL)-STFF(J2))/RST7  
;;;     ADDI 2,3	       ; STF#+3(+1) 
;;;     MOVN 3,POSI(2)   
;;;     SUB 2,12    
;;;     FADR 3,POSI(2)   
;;;     FDVR 3,ALF+=46	 ;  RB   
;;;     FADRM 3,.COMM.+5	;R4=R4+RB    
	JSA 16,CENTX	   ;CALL CENTX  
;;      SETOM .COMM.+=30	;J9=-1  
;  SUPRESSES LEDGER LINES     -- CAN'T USE LEDGER LINES ON OTHER STAFF!    
	JRST N1010+2	   ;GO TO 1010  GO BACK FOR P4 FEATURES  
N1019:  CAIL 14,=480	   ;1011   IF(L.LT.10000)GO TO 1019 
	JRST N1017	     ;GO TO 1013  
	MOVE 10,.COMM.+=13      ; R12  1019     IF(L.GE.480)GO TO 1017
	FMPR 10,ALF+=46  
	FADR 10,.COMM.+2	;RB=CENTR+R12*RST7
	JRST N1013     ;+400 = NO NOTE HEAD.  P12 CAN ADJUST SOURCE OF STEM.    
N1017:  JSA 16,EXTRA	   ;GO TO 1013  
	SETOM .COMM.+=43	;1017   RG=R4
	JRA 16,(16)	    ;CALL EXTRA  
;  'EXTRA' IS FOR USER-ADDED NOTE AND REST SHAPES. P4+ 480↑Y (OR 600 TOO?) 
;  480 IS USED SO NOTES CAN BE AT 500-19
	;RETURN
N1012:  MOVE 2,STF+10	  ;1012   RMINI=.6*RSTJ2 
	FMPR 2,[0.6]
	MOVEM 2,ALF+=49	; RMINI 
;  FOR RMINI NOTES  
;;** DONE IN CENTX *** 1017     ;R4=AMOD(R4,100.) 
;  FOR MINI TAILS AND ACCIS. ETC.  
N1013:  MOVE 2,.COMM.+5	;1013   J4=R4
	MOVEM 2,.COMM.+=42      ; JQ(19) IS EQUIV. TO RX4   
	MOVEM 2,.COMM.+=23      ;  RJZ  
	KIFIX 2,2   
	MOVEM 2,.COMM.+=25      ;  J4    RJZ=R4   
;  RJZ FOR FLAT, #, NAT.   RX4 FOR TR., HARM, ETC.
	MOVEM 10,ALF+=55	       ; RB 
	MOVEM 11,ALF+=69	;  RG     IF(JY.LT.10)GO TO 2221 
	MOVEM 12,ALF+=60	;  KL   
	MOVEM 13,ALF+=66	;  RZTM 
	MOVEM 14,ALF+=63	; PUT AWAY L FOR NOTWRT
	CAIGE 7,=10 
	JRST N2221  
	MOVE  4,WIDTH      ;**** NO LONGER USED↑YIF(JY.GE.30)GO TO 2221    
; P6 FOR HOMING TO RIGHT(10) OR LEFT(20) OF STEM(10=UP, 20=DOWN) 
; P6<0 = WHITE NOTE 
	CAIL 14,=180	   ;IF(J4.GE.180)THEN A DIAMOND (BLACK OR WHITE)   
	JRST .+3    
	SKIPGE .COMM.+=27       ;  J6      RQ=RSTM
	MOVE 4,[16.2]	  ;IF(J6)RQ=16.2    
; GETS WIDTH OF NOTE DISPLACEMENT  
	CAIN 7,=20	     ;IF(JY.EQ.20)RQ=-RQ    
	MOVNS 4
	FMPR 4,ALF+=49	 ;R3=R3+RQ*RMINI   
	FADRM 4,.COMM.+4	;  R3   
N2221:  CAILE 2,1	      ;2221   IF(J4.LE.1)GO TO 322
	CAIL 2,=13	     ;IF(J4.LT.13)GO TO 1121
	SKIPA  
	JRST N1121  
N322:   SKIPL .COMM.+=30	;322    IF(J9.GE.0)SKIP  NEXT    
	JRST .+4    
	MOVNI 3,1	      ;J9<-1 =LEDGER LINES OK BUT DON'T JUSTIFY IT.   
	CAMN 3,.COMM.+=30       ;IF(J9.EQ.-1)GO TO 1121
	JRST N1121  ;   ARE THERE LEDGER LINES?  P9=-1 SUPPRESSES THEM.    
	MOVE 3,2	;J12=(J4+1)/2-6 
	AOJ 3, 
	IDIVI 3,2	      ; (AC4 NOT USED YET)   
	SUBI 3,6	; 3 IS J12 
	MOVEM 3,.COMM.+=33    
	JUMPGE 3,.+5    ;IF(J12)J12=-((3-J4)/2)   
	MOVE 3,2    
	SUBI 3,3    
	IDIVI 3,2   
	MOVEM 3,.COMM.+=33      ; J12  ;  FOR LEDGER LINES  
	MOVN 4,ALF+=49	 ;RJW=R3-7.*RMINI  
	FMPR 4,[7.0]
	FADR 4,.COMM.+4  
	MOVEM 4,ALF+=56	; RJW   
	MOVE 5,ALF+=49	 ;RZ=R3+20.*RMINI  
	FMPR 5,[20.0]    
	FADR 5,.COMM.+4	;  RZ   
	MOVEM 5,ALF+=57	;  RZ   
	JUMPL 3,N71	    ;IF(J12)GO TO 71  
	MOVEI 6,=13	    ;JX=J12 
	MOVEM 3,ALF+=58	;  JX   JRX=13    
	JRST N711	      ;GO TO 711   
N71:    MOVEI 6,2	      ;71     JX=-J12   
	IMUL 6,3	       ;JRX=J12*2+3 
	ADDI 6,3    
	MOVNM 3,ALF+=58	; JX    
N711:   MOVN 7,[18.0]	  ;711    RX=POS-18*RSTJ2+RST7*JRX 
	FMPR 7,STF+10    
	FLTR 6,6	       ; FLOAT IT   
	FMPR 6,ALF+=46   
	FADR 6,7    
	FADR 6,POSI+=9	 ;IF(J6)RZ=RZ+2*RMINI   
	MOVEM 6,ALF+=52	;  RX IS 6   
	SKIPL .COMM.+=27 
	JRST N126   
	MOVE 2,ALF+=49	 ; RMINI 
	FMPR 2,[2.0]
	FADRM 2,ALF+=57	;  RZ   
N126:   JSA 16,LINX	    ;126    CALL LINX(RJW,RX,RZ,RX)  
	JUMP ALF+=56
	JUMP ALF+=52
	JUMP ALF+=57
	JUMP ALF+=52
	MOVN 2,PLTR	    ;IF(PLT.NE.-2)GO TO 1126    
	CAIE 2,2    
	JRST N1126  
	MOVN 2,[1.0]	   ;RJY=RX-1./RHT    
	FDVR 2,PLTR+1    
	FADR 2,ALF+=52	 ;  RX   
	MOVEM 2,ALF+=54	;  RJY  
	JSA 16,LINX	    ;CALL LINX(RJW,RJY,RZ,RJY)  
	JUMP ALF+=56
	JUMP ALF+=54
	JUMP ALF+=57
	JUMP ALF+=54
N1126:  MOVE 3,ALF+=58	 ;  JX   1126    IF(JX.EQ.1)GO TO 1122 
	CAIN 3,1    
	JRST N1122  
	MOVE 2,STF+10	  ;RX=RX+RSTJ2*14.  
	FMPR 2,[14.0]    
	FADRM 2,ALF+=52	;  RX   
	SOS ALF+=58	    ;JX=JX-1
	JRST N126	      ;GO TO 126   
N1122:  SETOM .COMM.+=30	;1122   J9=-1  ;  IF J6↑[0 NOTE IS FILLED IN    
	       ;   1121	IF(L.GE.400)GO TO 123 ;  JUMP IF NO NOTE HEAD   
N1121:  CAIL 14,=380	   ;IF(J6)GO TO 1322 
	SKIPGE .COMM.+=27       ; J6    
	JRST N1322  
	CAIGE 14,=180	  ;IF(L.LT.180)GO TO 125 
	JRST N125	      ;AC14 HAS NOTE-HEAD TYPE    
N1322:  CAIGE 14,=180	  ;1322   IF(L.LT.180)GO TO NX1322 
;N1322: CAIL 14,=200	   ;1322   IF(L.GE.200)GO TO 1253   
	JRST NX1322 
	SKIPGE .COMM.+=27       ; J6    
	JRST N2122	     ;IF(J4>180 AND J6<0)GO TO N2122  
	JRST N1253  ;  FOR DIAMOND AND X NOTES.  UNLESS J6<0
NX1322: MOVEI 12,1	     ;KL=1   
	MOVE 11,[7.0]	  ;RG=7.  ;  FOR WHITE NOTES ON DPY.    
	MOVE .COMM.+=28	;JSA 16,MOD	    ;WHOLE=MOD(J7,10)  
	IDIVI =10	      ;JUMP .COMM.+=28  
	MOVEM 1,ALF+=71	;JUMP [=10]     ;  WHOLE    
	JUMPE 1,N2122	  ;IF(WHOLE.EQ.0)GO TO 2122   
	SETZM .COMM.+=43  ;STEM=0 ;FOR VARIOUS AUTOMATIC FEATURES IN 'SCORE' SEC
TION.
	SETZM .COMM.+=28	;J7=0   
	JSA 16,AMOD	    ;R5=AMOD(R5,10.)  
	JUMP .COMM.+6    
	JUMP [10.0] 
	MOVEM .COMM.+6   
	KIFIX 0,0   
	MOVEM .COMM.+=26	       ;J5=R5    
	SKIPGE PLTR	    ;IF(PLT)GO TO 2121
	JRST N2121  
	MOVE 2,ALF+=71	 ;IF(WHOLE.NE.2)GO TO 1253   
	CAIE 2,2    
	JRST N1253	     ;RQ=POS-18.*RSTJ2+RST7*(R4-1.)   
	MOVN [18.0] 
	FMPR STF+10 
	MOVE 1,.COMM.+5	; R4    
	FSBR 1,[1.0]
	FMPR 1,ALF+=46	 ; RST7  
	FADR 1,0    
	FADR 1,POSI+=9	 ; POS   
	MOVEM 1,ALF+=64	; RQ    
	FADR 1,ALF+=46	 ;CALL LINX(R3,RQ,R3,RQ+RST7+RST7)
	FADR 1,ALF+=46   
	MOVEM 1,ALF+=65	; (RH)  
	JSA 16,LINX 
	JUMP .COMM.+4    
	JUMP ALF+=64
	JUMP .COMM.+4	  ;PUT IN LINE TO SHOW DBL WHOLE ON SCREEN (P7=2) 
	JUMP ALF+=65
N2122:  CAIGE 14,=180	  ;IF(PLT)GO TO 2121
	JRST NX2122 
	SKIPL  .COMM.+=27
	JRST NX2121    ;?????JRST .+3   
	MOVEI 7		;BLACK DIAMOND IS FOUND AS #7 IN CLEFA.DMD 
	SETZM .COMM.+=27	;SET STEM SHIFT FLAG(J6) FOR ORD. WIDTH NOTES.  
	JRST NX2121 
NX2122: SKIPL PLTR	     ;2122   IF(PLT.GE.0)GO TO 1253   
	JRST N1253  
;;;N2121:       CAIL  14,=180	  ;2121   IF(L.GE.180)GO TO 1253
;N2121: CAIL  14,=200	  ;2121   IF(L.GE.200)GO TO 1253   
;;;     JRST N1253  
N2121:  MOVE ALF+=71	   ;J5=15+WHOLE 
	ADDI =15    
NX2121: MOVEM .COMM.+=26 ;IF WHOLE=1, THEN WHOLE NOTE SHAPE INSTEAD OF HALF. (P7
=1)  
	MOVE STF+10	    ;RG=RSTJ2    
	MOVEM ALF+=59	  ;  RG  FOR NOW ;FIX THIS SOME DAY↑A↑A  SEE 1342+
1!   
; THESE NOTES ARE IN CLEF1.  1/2=13, WHOLE=14
	MOVE .COMM.+=25	;JX4=J4 
	MOVEM ALF+=68	  ; JX4   
	MOVE .COMM.+10	 ;RQ=R7  
	MOVEM ALF+=64	  ;  RQ   
     
	JSA 16,DRWNT	   ; CALL DRWNT ; SAVE IT FOR DOTS  
	MOVE ALF+=59	   ;R7=RQ  
	MOVEM STF+10
	MOVE .COMM.+=42	;R4=RX4 
	MOVEM .COMM.+5   
	MOVE ALF+=68	   ;J4=JX4 
	MOVEM .COMM.+=25	;  GET 'EM BACK   
	MOVE ALF+=64	   ;RSTJ2=RG    
	MOVEM .COMM.+10	; (R7)  ;DRAWS GOOD NOTES ON PLOTTER, NOT ON DPY
	JRST N123	      ;GO TO 123   
     
N1251:  JSA 16,NOIR	    ;1251   CALL NOIR(RMINI)    
	JUMP ALF+=49    ;  FOR QUARTER NOTES ON PLOTTER.    
	JRST N123       ;GO TO 123 
     
N125:   MOVEM 10,ALF+=55	; SAVE RB    
	SKIPGE PLTR	    ;125    IF(PLT)GO TO 1251   
	JRST N1251  
	MOVE 11,[22.0]	 ;RG=22  
	MOVEI 12,=17	   ;KL=17  
N1253:  MOVEM 12,ALF+=60   ;  ABOVE IS NEW NOTES ROUTINE    
	MOVEI 0,1   
	MOVEM TRI#	     ;FOR TRIPLE-THICK X NOTES, HARMONICS. 
	MOVE .COMM.+4	  ; ***** THEY ARE DOUBLE-THICK NOW. 4/80 ***
	MOVEM ALF+=69	  ;RH=R3  
	MOVEM 11,ALF+=59 
NRDR:   JSA 16,RDRAW    ;1253   CALL RDRAW(KL,RG,RNOTE,RMINI,RH,CENTR,RMINI)    
	JUMP ALF+=60
	JUMP ALF+=59
	JUMP DAT+=93
	JUMP ALF+=49
	JUMP ALF+=69
	JUMP .COMM.+2    
	JUMP ALF+=49
	SKIPLE TRI   ;IF(TRI.LT.0)ALL DONE   DIAMOND AND X NOTES 2 THICKNESSES N
OW.  
	SKIPL PLTR	     ;IF(PLT.GE.0)GO TO 123 
	JRST N123   
	MOVE 12,ALF+=60	;IF(KL.EQ.8)GO TO 2253 
	CAIN 12,=8  
	JRST N2253  
	CAIE 12,=13	    ;IF(KL.NE.13)GO TO 123 
	JRST N123   ;  MAKE DBL THICK X AND DIAMOND NOTES   
;;N2253:	MOVE .COMM.+4	  ;2253   RH=R3-1.0   
;  MAKE TRIPLE THICK X AND DIAMOND NOTES
N2253:  MOVE ALF+=69	   ;2253   RH=R3-1.0 
	FSBR [1.0]  
	MOVEM ALF+=69    
; GO BACK FOR THIS      ;CALL RDRAW(KL,RG,RNOTE,RMINI,RH,CENTR,RMINI) 
	SOS TRI	;TRI=TRI-1 
	JRST NRDR   
N123:   MOVN 2,.COMM.+=26       ;R5=R5-J5    
	FLTR 2,2    
	FADRM 2,.COMM.+6 
	SKIPN .COMM.+=43	       ;IF(STEM.EQ.0)RETURN
	JRA 16,(16) 
     
	MOVE 10,ALF+=55	; PUT RB BACK INTO 10  
	MOVE 14,ALF+=63	; GET BACK L 
	CAIL 14,=280
	JRST N128   
	MOVE 10,ALF+=66		; RZTM    
	FADR 10,.COMM.+2   ;   RB    R5=STEPS TO LEFT FOR ACCID. (.1=1 STEP)    
N128:   MOVE 5,.COMM.+=28	      ;JSA 16,MOD    
	IDIVI 5,=10	    ;JUMP .COMM.+=28  
	MOVEM 6,.COMM.+=28      ;JUMP [=10]     ;IF(STEM.EQ.0)GO TO 1242   
			     ;IF(L.LT.280)RB=CENTR+RZTM  
	SOJ 6,		; ↑]280 IS FOR 'X' NOTES.   
	IMULI 6,=14	    ;128    J7=MOD(J7,10)  
	FLTR 6,6	       ;RG=(J7-1)*14
	SKIPGE 6	       ;IF(RG)RG=0  
	SETZ 6,		; 6 IS RG    
	MOVE 2,.COMM.+=9	;999 IS STANDARD (0) STEM LENGTH.
	CAME 2,[999.0]	 ;IF(R8.NE.999)GO TO 1751    
	JRST N1751  
	SETZ 2,		;R8=0   
	SETZ 15,	       ; 15  =  RH=0
	JRST N2751	     ;GO TO 2751  
N1751:  CAMG 2,[999.0]	 ;1751   IF(R8.LT.999)GO TO 751   
	JRST N751   
	FSBR 2,[1000.0]	;R8=R8-1000. 
	SETOM .COMM.+=11	;  R10=-1 TO MAKE GRACE NOTE SLASH    
N751:   MOVE 15,2	      ;  1000+ PUTS SLASH ON NOTE STEM 
	FMPR 15,ALF+=46	;15 IS RH  751  RH=R8*RST7  
N2751:  MOVEM 2,.COMM.+=9       ; R8    
	MOVE .COMM.+=26	;JSA 16,MOD  
	IDIVI =10	      ;JUMP .COMM.+=26 ;J5=MOD(J5,10)  ACCI NOW IN J5 
	MOVEM 1,.COMM.+=26      ;JUMP [=10]  
	MOVE .COMM.+=43	;  STEM EXTENSIONS ARE BY NOTE #S
	CAIE 2		;2751   IF(STEM.NE.2)GO TO 1280  
	JRST N1280  
	MOVE 5,.COMM.+4	;RJX=R3 
	FADR 6,[48.0]	  ;  FOR STEM DOWN (=2)  
	MOVNS 6		;RG=-RG-48.  
	MOVNS 15	       ;RH=-RH 
;*** SEE AT N2751       MOVEI 14,=20	   ;L=20  
	MOVN 4,ALF+=66	 ;  RZTM    RB=RB-RZTM*2
	FMPR 4,[2.0]	   ; FOR TILT OF ORDINARY NOTES (NOT X OR DIAMOND) 
	FADR 10,4	      ; RB IS 10 (SEE 'WAY BACK)  
	JRST N129	      ;GO TO 129   
N1280:  MOVE 5,WIDTH	   ;  NEXT IS FOR STEM UP.
	SKIPGE .COMM.+=27       ;1280   RJX=RSTM  
	MOVE 5,[16.2]	  ;IF(J6.LT.0)GET SPACE FOR HALF NOTE   
N2322:  FMPR 5,ALF+=49	 ;2322   RJX=RJX*RMINI+R3    
	FADR 5,.COMM.+4  
	FADR 6,[48.0]	  ; 6 IS  RG=RG+48. 
;*** SEE AT N2751       MOVEI 14,=10	   ;L=10  
N129:   FMPR 6,ALF+=49	 ;129    RZ=CENTR+RH+RG*RMINI
	FADR 6,15   
	FADR 6,.COMM.+2  
	MOVEM 6,ALF+=57  
	MOVE 4,ALF+=49	 ;IF(RMINI.NE.RSTJ2)RJW=RJW*.6    
	CAMN 4,STF+=8    
	JRST .+4    
	MOVE ALF+=56
	FMPR [0.6]  
	MOVEM ALF+=56    
	MOVEM 5,ALF+=53	; RJX   
	MOVEM 10,ALF+=55	; RB    
	JSA 16,LINX	    ;CALL LINX(RJX,RB,RJX,RZ)   
	JUMP ALF+=53
	JUMP ALF+=55
	JUMP ALF+=53
	JUMP ALF+=57
;****N227:      MOVN 14	;  RB HERE IS CENTR (FOR 'X' NOTES OR NOT) 
;** SEE AT N2751***     ADDM .COMM.+=26	;227    J5=J5-L  
N227:   SKIPG .COMM.+=28	;   J5 HAS ACCID. # NOW
	JRA 16,(16)	    ;IF(J7.LE.0)GO TO 1242 
	MOVE [2.0]	     ;   JUMP IF NO TAILS   
	FMPR ALF+=49	   ;RJW=2.*RMINI/RSTJ2    
	FDVR STF+10 
	MOVEM ALF+=56    
	MOVE 3,[1.0]	   ;RA=1.  
	MOVE .COMM.+=43 ;  FOR VERT. SPACING OF MULTIPLE TAILS   
	CAIE 2	 ;IF(STEM.NE.2)GO TO 1127  
	JRST N1127  
	MOVN .COMM.+=9	 ;R4=R4-3.7-R8
	FSBR [3.7]      ; R4 IS USED IN SUBR. TAIL   - R8 IS STEM EXTENSION.    
	FADRM .COMM.+5   
	MOVNS ALF+=56	  ;RJW=-RJW    
	JRST N127	      ;GO TO 127   
N1127:  MOVE .COMM.+=9	 ;1127   R4=R4-2+R8
	FSBR [2.0]  
	FADRM .COMM.+5   
;  2 ABOVE AND 3.7 BEFORE ARE BECAUSE ORIG. POS. OF TAIL DRWING IS OFF.    
	MOVNS 3		;RA=-RA 
	SETZM .COMM.+=9	;R8=0    FOR SHIFT AT 246   
N127:   MOVEM 3,ALF+=51	; RA    
	JSA 16,TAIL	    ;127    CALL TAIL 
	SOS .COMM.+=28	 ;1028   J7=J7-1   
	SKIPN .COMM.+=28	       ;IF(J7.EQ.0)GO TO 327    
	JRST N327   
	MOVE ALF+=56	   ;R4=R4+RJW   
	FADRM .COMM.+=5  
	JRST N127+1     ; GO TO 127 MOVES CENTR UP OR DOWN FOR NEXT TAIL   
N327:   MOVE .COMM.+=5	 ;327    IF(R4.GE.RX4)RX4=R4+1    
	CAMGE .COMM.+=42 
	JRST .+3    
	FADR [1.0]  
	MOVEM .COMM.+=42	; FOR TRILLS, ETC.
	SKIPL .COMM.+=11	;IF(J10.GE.0)GO TO 1242
	JRA 16,(16) 
	MOVN [19.0]	    ;RJY=RZ-19*RSTJ2  
	FMPR STF+10 
	FADR ALF+=57	   ; 0 IS RJY FOR NOW
	MOVN 2,[4.0]	   ;RZ=RZ-RSTJ2*4.   
	FMPR 2,STF+10    
	FADRM 2,ALF+=57  
	SKIPGE ALF+=51	 ;IF(RA.LT.0)GO TO 1327 
	JRST N1327	     ;  NEXT IS FOR STEM DOWN SLASH   
	MOVE [23.0]	    ;RJY=RZ+23*RSTJ2  
	FMPR STF+10 
	FADR ALF+=57	   ; 0 IS RJY   
	MOVE 2,ALF+=46	 ;RZ=RZ+RST7  
	FADRM 2,ALF+=57  
N1327:  MOVN 2,ALF+=46	 ;1327   RJX=RJX-RST7   
	FADRM 2,ALF+=53  
	MOVEM ALF+=54	  ; RJY   
	MOVE [17.0] 
	FMPR STF+10 
	FADR ALF+=53
	MOVEM ALF+=71    
	JSA 16,LINX	    ;CALL LINX(RJX,RJY,RJX+17.*RSTJ2,RZ)  
	JUMP ALF+=53
	JUMP ALF+=54
	JUMP ALF+=71
	JUMP ALF+=57	   ;FOR SLASH ON GRACE NOTE TAIL    
	JRA 16,(16)